package teach.math;

/**
 * 斐波那契数列又称 黄金分割 数列，因数学家莱昂纳多·斐波那契（Leonardoda Fibonacci）以兔子繁殖为例子而引入，故又称为“ 兔子数列 ”;
 *
 * * 指的是这样一个数列：1、1、2、3、5、8、13、21、34、……
 * * 其规律是从第3个数开始，每个数都等于它前两个数的和。
 */
public class Fibonacci {
    public static void main(String[] args) {
        int num=20;
        fibonacciByArray(num);
        //int count = fibonacciByRecurrence(num);
        //System.out.println("第"+num+"月时，兔子总数是"+count+"对");

    }

    public static void fibonacciByArray(int num){
        if(num>=3){
            int[] arr = new int[num];
            arr[0] = 1;
            arr[1] = 1;
            for(int i=2;i<arr.length;i++){
                arr[i] = arr[i-1]+arr[i-2];
                System.out.println("第"+(i+1)+"月，兔子总数是"+arr[i]+"对");
            }
            System.out.println("第"+num+"月时，兔子总数是"+arr[arr.length-1]+"对");
        }else{
            System.out.println("兔子总数是1对");
        }
    }

    public static int fibonacciByRecurrence(int num){
        if(num==1 || num==2){
            return 1;
        }
        return fibonacciByRecurrence(num-1)+fibonacciByRecurrence(num-2);
    }
}












